// components/search_bar/search_bar.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    //是否自动获取光标
    autoFocus:{
      type:Boolean,
      value:false
    },
    // 显示搜索按钮
    searchButton:{
      type: String,
      value: ""
    },
    //是否禁用输入功能
    disabled:{
      type:Boolean,
      value:false
    },
    //搜索框显示的内容
    value: {
      type: String,
      value: '',
      observer: function (newVal, oldVal) {
        // 属性值变化时执行
          this.setData({
            showDeleteAll: newVal != ''
          })
      }
    },
    // 输入框背景颜色
    inputBGColor:{
      type: String,
      value: '',
    },
    // 输入框提示
    placeholder:{
      type: String,
      value: '需求搜索',
    }
  },
  lifetimes:{
    ready:function(){
      if(!this.id) return
      // if(!this.id) this.id = "searchBar"
      this.parentTarget = getCurrentPages()[getCurrentPages().length - 1]
      this.parentTarget[this.id + 'Target'] = this
      this.resetParentTargetData()
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    //
    canInput:true,
    value:'',
    showDeleteAll:false ,
    fontSize:'24rpx'
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onTap:function(e){
      if (this.data.disabled) {
        //不允许输入时，可跳转
        //事件传递给父组件,关键字vlaue传递给父组件
        this.triggerEvent("goSearch")
      }else{
        //允许输入
      }
    },
    /**
     * 确认输入内容开始搜索
     */
    confirm:function(e){
      //获取当前搜索value
      let currentValue = e.detail.value
      console.log('确认输入内容', e)
      //事件传递给父组件,关键字vlaue传递给父组件
      this.triggerEvent("searchConfirm",{value:currentValue})
    },
    /**
     * 清空输入内容
     */
    clear:function(e){
      console.log("清除", this.data.value)
      this.setData({
        value:'',
      })
      this.triggerEvent("inputting", '')
    },
    /**
     * 监听输入
     */
    inputting:function(e){
      let value = e.detail.value
      //传递给父控件
      if (this.data.disabled == false){
        this.triggerEvent("inputting", value)
      }
      this.setData({
        value
      })
    },

    clickSearchButton(){
      //传递给父控件
      if (this.data.disabled == false){
        this.triggerEvent("clickSearch", this.data.value)
      }
    },
    // 注入搜索组件对象, 如果不存在id则不注入
    resetParentTargetData(){
      if(!this.id) return
      this.parentTarget.setData({
        [this.id + 'Target']: this.data
      })
    }
  }
})
